package learn.up.java.basic.order;

/**
 *
 * @author NANUTO
 * @date 2017年12月14日 下午10:42:39
 */
public class SubConstructorOrder extends ConstructorOrder {
	
	{System.out.println("子类构造代码块1");}
	
	static {
		System.out.println("子类静态代码块");
	}
	{System.out.println("子类构造代码块2");}
	static {
		System.out.println("子类静态代码块2");
	}
	public SubConstructorOrder() {
		System.out.println("子类无参构造");
	}
	public static void main(String[] args) {
	/**
	 * 1.若无继承，下面初始化执行顺序依次是
	 * 本类静态代码块->构造类静态代码块->构造类构造代码块->构造类无参构造
	 * 2.若本类继承了基类，则下面初始化执行顺序是：
	 * 基类静态代码块->子类静态代码块->基类构造代码块->基类无参构造
	 */
//		ConstructorOrder base = new ConstructorOrder();
	/**
	 * 1.若无继承，下面初始化执行顺序依次是
	 * 子类静态代码块->子类构造代码块->子类无参构造
	 * 2.若本类继承了基类，则下面初始化执行顺序是：
	 * 父类静态代码块->子类静态代码块->父类构造代码块->父类无参构造
	 * 		->子类构造代码块->子类无参构造
	 */
//		SubConstructorOrder sub = new SubConstructorOrder();
		
		ConstructorOrder cast = new SubConstructorOrder();
	}
}
